### Audio Push Content (PC)

A special XML file for RTP streaming must initiate Audio push.

    <?xml version="1.0"?>

    <Response>

    	<Audio

                    packetsize=”10|20|30|40|50|60”

                     codec = “PCMU | PCMA”

    >

    	<AudioTimer value="30"/>

    	<Url href=”RTPRx://remote_ip_address:remote_port”/>

    	<Promptline>

    	This text goes on the Prompt Line

    	</Promptline>

    </Audio>

    </Response>

Each <Response> can contain only one <Audio> tag with the following attributes:

Attribute | Value | Description
codec | PCMU | PCMA | Silence suppression on. G.711 Annex A (no CID frames) µ-law | A-law Default is PCMU.
packetsize | 10|20|30|40|50|60 (milliseconds) | Default is 40 milliseconds.
<Promptline> |  | Provides the prompt line text to accompany the Audio Interrupt Screens.

Each <Audio> tag can contain <AudioTimer> and <Url> tags. The <AudioTimer> tag is used as an inter-packet timer. This timer is set every time a packet is received. After an administrable duration where no packets are received the RTP stream is terminated. This tag has the following attributes:

Attribute | Value | Description
value | X (seconds) | Default is 20 seconds. The range is 5 to 30 seconds.

Each <Url> tag consists of information for the RTP streaming server and the local receive port of the telephone. The <Url> tag has the following attributes:

Attribute | Value | Description
href | string | RTP Streaming URI Format.

RTP Streaming URI Format | IP Address | Port
RTPRx denotes “Receive” by the phone | rtpserver_ip_address is the IP address of the RTP streaming server. | Port Number separated by a colon. This is the receive port number or rtpLPort value from the GET request.

The following reserved URIs can be used in the href attribute to control an audio stream:

Reserved URIs | Description
RTPRx://STOP | Can be used to stop an audio streaming on the receive end. To be successful, all Push requests that result in sending the RTPRx://STOP must have a barge priority.

NOTE: For example, if an audio stream originator wanted to explicitly stop an audio stream the following would be sent in new Push Content:

    <!– Following is the XML Push Request Message sent as a POST request embedded as part of form data -->

    XMLData = <?xml version="1.0"?>

    <Push type=“audio” mode=“barge”>

    	<go href=“http://trusted_push_server/stop_audio.xml” method=“get”>

    	</go>

    </Push>

    <!–The message below is from the Push Content file called “stop_audio.xml” from above go href URI -->

    <?xml version="1.0"?>

    <Response>

       <Audio>

    	   <Url href=”RTPRx://STOP”>

            </Audio> <

    </Response>

Audio quality depends on the streaming source providing the audio at an appropriate pace. The pace depends on the packet size. If you are using 40ms packets, then the packets should be separated by 40ms.

Transmitting the packets too slowly results in odd silences when the telephone has no audio to play out its Speaker. Transmitting the packets too quickly results in broken sound, as the telephone is forced to drop packets it cannot maintain in its buffer.

The error in the pace measured at the telephone is called jitter. If the jitter stays below the size of one packet, then jitter does not impact the audio quality. Note that a +2ms jitter on one packet cancels out a -2ms jitter on the next. However, 40ms packets, each separated by 38ms, means that the jitter grows +2ms with each packet. After 3 seconds, the jitter would be +150ms, and the telephone would need to drop audio to maintain its buffers.